/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.uccart_project.util;

import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

/**
 *
 * @author KNO
 */
public class EntityManagerFactorySingleton {
    
    private final static EntityManagerFactory INSTANCE = Persistence.createEntityManagerFactory("UCCART_ProjectPU");
//;

    private EntityManagerFactorySingleton() {}

    public static EntityManagerFactory getFactory() { return EntityManagerFactorySingleton.INSTANCE; }

    @Override
    protected Object clone() throws CloneNotSupportedException {
        throw new CloneNotSupportedException();
    }

    
    
    
    
    // obtener una instancia de EntityManagerFactory usando la clase
//// Persistence
//// Como consejo debemos guardar la instancia de este factory para
//// que no vuelva a ser creado con el objeto Persistence debido a que
//// tiene un costo considerable de construcción
//EntityManagerFactory factory = Persistence.createEntityManagerFactory("MyPersistenceUnitName");
//
//// obtener una instancia de EntityManager del factory
//EntityManager em = factory.createEntityManager();
//
//// Inicio de transacción
//em.getTransaction().begin();
//
//// Consulta para obtener todos los empleados que trabajan en una
//// división de trabajo especificada y tienen un promedio de 40
//// horas trabajadas a la semana
//Query query = em.createQuery("SELECT e " +
//" FROM Employee e " +
//" WHERE e.division.name = 'Research' " +
//" AND e.avgHours > 40");
//// obtener una lista de resultados
//List results = query.getResultList ();
//
//// establecer un monto de salario a todos los empleados
//for (Object res : results) {
//Employee emp = (Employee) res;
//emp.setSalary(emp.getSalary() * 1.1);
//}
//
//// Comprometer todos los cambios que han sido detectados dentro de
//// la transacción en el que se actualizarán todos los objetos
//// persistentes que hayamos modificado em.getTransaction().commit();
//
//// liberar los recursos
//em.close();
    
}
